[Git]リモートリポジトリの全ブランチをプルする
January 13, 2021 Category: Git
git pullは現在チェックアウトしているブランチしかフェッチしない
ワガハイは仕事でプロジェクトのgitをほとんど1人で操作している(作業者が1人)のですが、頻繁にブランチを切り替えて作業しているためあっちでプッシュしてこっちでプルしてみたいな場面が多くあります。
その中で、ブランチ間をスイッチしながら作業しているとプルして最新のソースで作業していたつもりなのにし損ねていてて混乱することがあります。
なので、もういっそgit pull
をgit pull --all
にしてしまいましょう。
使用するコマンド
git pull —all
git pull --all
はローカルでトラッキングしているブランチをすべてプルしてくれるそうです。
トラッキングしていないブランチもすべてプル
上記の通り、git pull --all
はトラッキングしているブランチしかプルしてくれません。トラッキングしていないブランチもすべてプルしたい場合はこちらを実行するようです。
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git pull --all
※参考にしたStack Overflowの回答者さんはgit pull --all
の前に念の為git fetch --all
も実行しているそうです。
git pull
にはgit fetch
も含まれているはずなのでどういう場合の念の為なのかはよくわかりませんが。
エイリアスを作成
今回はgit pull --all
だけでいいので、こちらをgit pull
に設定します。
設定ファイル
影響範囲 | 設定ファイル |
---|---|
システム全体 | /etc/gitconfig |
ユーザー | ~/.gitconfig |
リポジトリ | リポジトリのルートディレクトリ/.git/config |
設定方法
[alias]
pull = pull --all
ちなみに/etc/gitconfig/
は
git config --global --edit
で編集可能。
参考
How to fetch all Git branches - Stack Overflow
【git】aliasの設定方法 - Qiita